package com.ruoyi.manage.mapper;

import java.util.List;

import com.ruoyi.manage.domain.FormSettingBig;
import com.ruoyi.manage.domain.FormSettingSmall;

/**
 * 清单大项Mapper接口
 *
 * @author zww
 * @date 2025-07-14
 */
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

@Mapper
public interface FormSettingBigMapper {
    /**
     * 查询清单大项
     *
     * @param formSettingBigId 清单大项主键
     * @return 清单大项
     */
    public FormSettingBig selectFormSettingBigByFormSettingBigId(Long formSettingBigId);
    public List<FormSettingBig> selectFormSettingBigByFormSettingId(Long formSettingId);
    public List<FormSettingSmall> selectFormSettingSmallList(Long formSettingBigId);

    /**
     * 查询清单大项列表
     *
     * @param formSettingBig 清单大项
     * @return 清单大项集合
     */
    public List<FormSettingBig> selectFormSettingBigList(FormSettingBig formSettingBig);

    /**
     * 新增清单大项
     *
     * @param formSettingBig 清单大项
     * @return 结果
     */
    public int insertFormSettingBig(FormSettingBig formSettingBig);

    /**
     * 修改清单大项
     *
     * @param formSettingBig 清单大项
     * @return 结果
     */
    public int updateFormSettingBig(FormSettingBig formSettingBig);

    /**
     * 删除清单大项
     *
     * @param formSettingBigId 清单大项主键
     * @return 结果
     */
    public int deleteFormSettingBigByFormSettingBigId(Long formSettingBigId);

    /**
     * 批量删除清单大项
     *
     * @param formSettingBigIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteFormSettingBigByFormSettingBigIds(Long[] formSettingBigIds);

    /**
     * 批量删除单小项
     *
     * @param formSettingBigIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteFormSettingSmallByFormSettingBigIds(Long[] formSettingBigIds);

    /**
     * 批量新增单小项
     *
     * @param formSettingSmallList 单小项列表
     * @return 结果
     */
    public int batchFormSettingSmall(List<FormSettingSmall> formSettingSmallList);


    /**
     * 通过清单大项主键删除单小项信息
     *
     * @param formSettingBigId 清单大项ID
     * @return 结果
     */
    /**
     * 查询带值的单小项列表
     * @param formSettingBigId 清单大项主键
     * @param surgeryFormId 手术单关联主键
     * @return 单小项列表
     */
    List<FormSettingSmall> selectFormSettingSmallWithValue(@Param("formSettingBigId") Long formSettingBigId, @Param("surgeryFormId") Long surgeryFormId);
    public int deleteFormSettingSmallByFormSettingBigId(Long formSettingBigId);


}
